如果提到密碼學,那密碼學的父親就是資訊安全了。
那就是另一個龐大的話題,交給其他的大神們。
回到密碼學!
那以密碼學往下細分,大致上我個人的分類如下:(其中分類與分類之間有交集)
時間軸分類
用途不同分類
處理加密分類
其他
PS. 上述的分類是依照我想講的方式來做大綱分類,更專業的分類請看密碼學的原文書或維基百科。
每一個都有它相對應的功能跟用途,目前現代密碼學應用的領域之中,都是混合使用的。
我們來說說這些方法、分類的相對關係與本質。
不得不說現代電腦的計算能力真的是遠遠超乎古代人的想像。
密碼學永遠離不開『替換』、『位移』兩個方式。
而古代在處理文本轉換成密碼來說,很難用手動的方式收集訊息並破解。
通常簡單的單表的凱撒密碼、多表的自動密鑰密碼、還有一些表格式加密。
在那個時代就很難破解了,破解都是要成本考量的。
但藉助現在的電腦來說,只是分秒之間的事情。
而現在的密碼學採用的是更加凌亂、位數更加龐大且熵更大的方式來做加密。
常常一點點的變化導致了整個加密環節環環相扣的情況下,無法知道那個環節出錯。
做多次的重複的動作,同時金鑰本身也參與了變化,這也使得不只文本在變化,金鑰也在變化。
這也導致了更難以被破解。
但你說能不能被破解……其實,還是能被破解,但隨著位元數的增加跟重複的次數增加,會使得困難程度成指數上升。
那你問我有沒有絕對無法被破解的加密方式(非旁路攻擊),其實也是有的,OTP就是利用這個方式,到時候(後面的章節)會詳細地講解這一部份。
這也是個好問題~
對稱:指的是加解密用的是同一把金鑰。
非對稱:指的是加解密用的是不同的金鑰。
接著就是安全性、效率的問題。
以目前主流在使用的算法來講:
那明明『非對稱』那麼多缺點,且上述都不能比的上對稱。
為何目前會是主流?
很簡單,因為『加解密用的是不同的金鑰』。
這就能做到傳輸上,防止密要被竊取的問題。
在密碼學的理論中『傳輸』可是佔了很大的一部份。
因此衍生出了很多種信任、串改、損毀的一些解決方案。
嗯,其實你問的很好。
雜湊:指的是一堆數據丟進去,出來一串固定長度的亂碼。
雜湊訊息鑑別:指的是一堆數據丟竟去後,必需要加入一段金鑰,然後比對。
那兩者的區別來說……其實你是可以當成『雜湊訊息鑑別』是『雜湊』衍生出來的。
除了驗證資料完整性之外,多了一個身份驗證的功能。
與一般的加解密來驗證身份不同的是,他利用的是『雜湊』的熵來做比對。
因為雜湊的特性,使得只要一點不同的東西進去後,會使得整個結果不一樣,且不會碰撞。
那用這個特性就能做到驗證的功能。
到時候會詳細地講(我故意不講得很詳細),之後還會有一個技術用到(JWT)。
我知道、我知道,第一次接觸密碼學的人都有這個問題。
一個密碼,一堆資料,加密算法是怎麼做到的?
其實,有的加密,在做的時候,是固定長度加密的。
也就是長度1000的資料,必需要拆分成固定長度。
而這個長度跟算法有著絕對的關係,同時跟你的金鑰也有關係。
那這該怎麼辦?要怎麼把這些資料串起來,就是『區塊加密法』來處理。
那有沒有直接整個吃下去,不分割資料的?那就是『串流加密法』在處理的。
一樣之後會有詳細的介紹。
大家知道嗎,其實加密有個重要的東西,那就是亂數!
還有,那些被稱為Token的東東,很多也來自亂數。
而非對稱的加密,亂數更是重要的東西。
所以為什麼有人說『量子亂數』更加安全。
技術層面,依然到章節的時候再來跟大家說。
而對稱的加密有個VI,也是很重要的,在區塊加密法中CTR也是需要亂數的。
UUID、亂數生成等,我覺得很必要跟大家說說,同時也讓大家知道一下有這東西。
接下來就是讀者們的回答,我會更新在下面。
有些是我之後才會說的,因此!如果我回答『註記,之後會提到』,那就是後面的章節會提到,並重點標註出來。
要是現在說完了,後面每一篇文章都短短的也不好看,對吧~
而且相關知識群在一起講,也比較好講。
AES-NI 與 Secure Key 構成 Intel® Data Protection Technology